home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2posx10.zoo / m2posix.10 / src / e.dpp < prev    next >
Encoding:
Modula Definition  |  1994-01-04  |  4.7 KB  |  137 lines

  1. DEFINITION MODULE e;
  2. __DEF_SWITCHES__
  3. #ifdef HM2
  4. #ifdef __LONG_WHOLE__
  5. (*$!i+: Modul muss mit $i- uebersetzt werden! *)
  6. (*$!w+: Modul muss mit $w- uebersetzt werden! *)
  7. #else
  8. (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
  9. (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
  10. #endif
  11. #endif
  12. (*****************************************************************************)
  13. (* Fehlercodes.                                                              *)
  14. (*                                                                           *)
  15. (* 'errno' Wird nur bei Fehlern geaendert. Die Werte sind OS-spezifisch, und *)
  16. (* koennen sowohl negativ ("GEMDOS") als auch positiv ("*IX","PC/MSDOS") sein*)
  17. (* Unabhaengig von 'errno' wird von den Funktionen bei Fehlern immer ein     *)
  18. (* negativer Wert geliefert (-1, wenn moeglich), oder ein NULL-Zeiger.       *)
  19. (* Die Vorgehensweise ist also folgende: Liefert eine Funktion einen nega-   *)
  20. (* tiven Wert (oder einen NULL-Zeiger), muss ueber 'errno' die genaue Fehler-*)
  21. (* meldung erfragt werden, falls benoetigt; dazu duerfen nur die symbolischen*)
  22. (* Konstanten benutzt werden.                                                *)
  23. (*---------------------------------------------------------------------------*)
  24. (* 01-Jan-94, Holger Kleinschmidt                                            *)
  25. (*****************************************************************************)
  26.  
  27. VAR
  28.   errno : INTEGER;
  29.  
  30. #ifdef __GEMDOS__
  31. CONST
  32.   (* "BIOS" *)
  33.  
  34.   eOK     =   0; (* Alles klar *)
  35.   eRROR   =  -1; (* allgemeiner Fehler *)
  36.   eDRVNR  =  -2; (* Geraet nicht bereit *)
  37.   eUNCMD  =  -3; (* unbekanntes Kommando *)
  38.   eCRC    =  -4; (* CRC-Fehler *)
  39.   eBADRQ  =  -5; (* Kommando nicht ausfuehrbar *)
  40.   eSEEK   =  -6; (* SEEK-Fehler *)
  41.   eMEDIA  =  -7; (* ungültiger Bootsektor *)
  42.   eSECNF  =  -8; (* Sektor nicht gefunden *)
  43.   ePAPER  =  -9; (* Druckerfehler, Papier alle *)
  44.   eWRITF  = -10; (* Schreibfehler *)
  45.   eREADF  = -11; (* Lesefehler *)
  46.   eGENRL  = -12; (* allgemeiner Fehler, reserviert *)
  47.   eWRPRO  = -13; (* Schreibschutz *)
  48.   eCHNG   = -14; (* Diskette gewechselt *)
  49.   eUNDEV  = -15; (* unbekanntes Geraet *)
  50.   eBADSF  = -16; (* Formatierfehler *)
  51.   eOTHER  = -17; (* Diskette einlegen *)
  52.  
  53.   eINSERT = -18; (* Meta-DOS: Medium einlegen *)
  54.   eDVNRSP = -19; (* Meta-DOS: Geraet antwortet nicht *)
  55.  
  56.  
  57.   (* "GEMDOS" *)
  58.  
  59.   eINVFN  = -32; (* ungueltige Funktionsnummer *)
  60.   eFILNF  = -33; (* Datei nicht gefunden *)
  61.   ePTHNF  = -34; (* Pfad nicht gefunden *)
  62.   eNHNDL  = -35; (* keine Dateikennung mehr frei *)
  63.   eACCDN  = -36; (* Zugriff verwehrt, Schreibschutz *)
  64.   eIHNDL  = -37; (* ungueltige Dateikennung *)
  65.   eNSMEM  = -39; (* kein Speicher frei *)
  66.   eIMBA   = -40; (* ungueltige Speicherblockadr. *)
  67.   eDRIVE  = -46; (* ungueltiges Laufwerk *)
  68.   eNSAME  = -48; (* unterschiedliche Laufwerke, Frename *)
  69.   eNMFIL  = -49; (* keine weitere Datei gefunden, Fsnext *)
  70.  
  71.   eLOCKED = -58; (* nur bei Netzwerk-"GEMDOS": Dateibereich geschuetzt *)
  72.   eNSLOCK = -59; (* nur bei Netzwerk-"GEMDOS": Lock existiert nicht *)
  73.  
  74.   eRANGE  = -64; (* ungueltiger Dateizeiger bei Seek *)
  75.   eINTRN  = -65; (* interner Fehler *)
  76.   ePLFMT  = -66; (* Programmdatei hat ungueltiges Format *)
  77.   eGSBF   = -67; (* Fehler bei Speicherfreigabe, -verkleinerung, Mshrink *)
  78.  
  79. #elif (defined __PCDOS__)
  80. #else
  81. #endif
  82.  
  83. (* POSIX-Fehlercodes
  84.  *
  85.  * "GEMDOS": Die Zuordnung zu den vorhandenen Fehlercodes wurde nur dort
  86.  * vorgenommen, wo sich die Fehler einigermassen entsprechen, sonst
  87.  * werden neue Codes verwendet, die nicht von "GEMDOS" als Fehlermeldung
  88.  * geliefert werden ([0..-127]). Allerdings sind die "GEMDOS"-Fehlermeldungen
  89.  * sowieso nicht besonders zuverlaessig...
  90.  *)
  91.  
  92. CONST
  93. #if (defined __GEMDOS__)
  94.   E2BIG        = -128;
  95.   EACCES       = eACCDN;
  96.   EAGAIN       = -129;
  97.   EBADF        = eIHNDL;
  98.   EBUSY        = -130;
  99.   ECHILD       = eFILNF;
  100.   EDEADLK      = -131;
  101.   EDOM         = -132;
  102.   EEXIST       = -133;
  103.   EFAULT       = eIMBA;
  104.   EFBIG        = -134;
  105.   EINTR        = -135;
  106.   EINVAL       = -136;
  107.   EIO          = eRROR;
  108.   EISDIR       = -137;
  109.   EMFILE       = eNHNDL;
  110.   EMLINK       = -138;
  111.   ENAMETOOLONG = -139;
  112.   ENFILE       = eNHNDL;
  113.   ENODEV       = eUNDEV;
  114.   ENOENT       = eFILNF;
  115.   ENOEXEC      = ePLFMT;
  116.   ENOLCK       = -140;
  117.   ENOMEM       = eNSMEM;
  118.   ENOSPC       = -141;
  119.   ENOSYS       = eINVFN;
  120.   ENOTDIR      = ePTHNF;
  121.   ENOTEMPTY    = -142;
  122.   ENOTTY       = -143;
  123.   ENXIO        = eDRIVE;
  124.   EPERM        = eACCDN;
  125.   EPIPE        = -144;
  126.   ERANGE       = -145;
  127.   EROFS        = eWRPRO;
  128.   ESPIPE       = -146;
  129.   ESRCH        = eFILNF;
  130.   EXDEV        = eNSAME;
  131.   ELOOP        = -147;   (* noch nicht POSIX *)
  132. #elif (defined __PCDOS__)
  133. #else
  134. #endif
  135. END e.
  136.  
  137.